En informática una máquina virtual es un software que emula a un computador y puede ejecutar programas como si fuese un computador real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". La acepción del término actualmente incluye a máquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real.
Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de este "computador virtual".
Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (Linux, por ejemplo) desde nuestro sistema operativo habitual (Windows por ejemplo) sin necesidad de instalarlo directamente en nuestro computador y sin miedo a que se reconfigure el sistema operativo primario.

Se pueden encontrar varios tipos de máquinas virtuales:
IMA1.JPG

Máquinas virtuales software: este tipo de máquinas virtuales se sitúan por encima del sistema operativo y tratan de aislar a las aplicaciones del entorno sobre el que se ejecutan. Proporcionan una capa entre las aplicaciones y el sistema operativo que captura todas las llamadas al sistema y las traduce al sistema concreto de ejecución. La máquina virtual de Java o la máquina virtual del entorno .NET son dos claros ejemplos de máquinas virtuales software.

Entornos virtuales: este tipo de máquinas se crean para ejecutar directamente aplicaciones que necesitan un entorno determinado de ejecución sobre otro entorno totalmente diferente.

Maquinas virtuales hardware: este tipo de aplicaciones tratan de emular directamente el hardware. Las llamadas al hardware del sistema operativo instalado serán capturadas y convertidas en llamadas al sistema del hardware emulado. En general, la emulación del hardware recibe el nombre de virtualización. Al emularse directamente el hardware, el usuario tiene la impresión de que la máquina sobre la que está trabajando es totalmente independiente. Este tipo de máquinas virtuales serán el objeto del presente monográfico y a partir de ahora nos centraremos en ellas.

El uso de software de virtualización permite ejecutar varias máquinas virtuales con distintos sistemas operativos sobre el mismo hardware de manera simultánea. Además estas máquinas virtuales se pueden copiar y mover a otra máquina física de manera muy sencilla, lo que proporciona una manera rápida y cómoda de hacer backups o de reutilizar máquinas existentes. Las máquinas virtuales tienen discos duros virtuales que para la máquina anfitriona (es decir, para la máquina real) son simplemente ficheros de datos que se pueden copiar y manejar. La propia máquina virtual no es más que un fichero de configuración.

IMA2.JPG

Un sistema operativo de máquina virtual tiene como capa inferior el hardware o máquina desnuda, sobre el cual se ejecuta el kernel; las operaciones disponibles en este nivel son las instrucciones de máquina. Sobre el hardware se encuentra el sistema generador de máquinas virtuales (SGMV) que es el encargado de multiprogramar múltiples máquinas virtuales sobre una máquina física. Sobre el SGMV se encuentra entonces el sistema operativo de cada una de las máquinas virtuales que es el encargado de realizar todas sus funciones, incluyendo administración del almacenamiento, construcción del itinerario del procesador, control de entrada/salida, protección de los usuarios, multiprogramación, etc. EL CMS (Sistema de Control Conversacional) es uno de los sistemas operativos usado por las máquinas virtuales, es un sistema de aplicaciones con características poderosas para el desarrollo interactivo de programas. Contiene editores, traductores de lenguajes, varios paquetes de aplicación y herramientas de depuración. Por último, sobre cada máquina virtual se ejecutan los programas y las aplicaciones de los usuarios.

Mientras que una máquina virtual representa los recursos de hardware de todo un computador, una infraestructura virtual representa los recursos de hardware interconectados de la totalidad de una infraestructura virtual, lo que incluye computadores, dispositivos de red y recursos compartidos de almacenamiento. Contiene sus propios CPU, RAM, disco duro y tarjetas de interfaz de red (NIC) virtuales. Para ser más específicos, se necesita tener un procesador rápido (cuanto más rápido mejor), además de tener bastante espacio libre en el disco, sobre todo si se va a trabajar con varias máquinas virtuales y los discos usados van a necesitar bastante espacio (en algunos casos de 5 a 8 gigas para cada máquina virtual, todo dependiendo de lo que se instale). También se necesita memoria, siempre será mejor 1 GB que 512 MB o 2 GB que 1, todo dependerá de cuanta memoria se desee que tengan dichas máquinas virtuales, pero en la mayoría de los casos, con 256 ó 384 MB será suficiente, por tanto se necesitará como mínimo 1 GB para trabajar con mejor rendimiento.



Existen diversas soluciones de virtualización disponibles actualmente, tanto gratuitas como de pago. Las más conocidas son las siguientes:

· Bochs: un emulador de procesadores x86 y AMD64 con licencia de software abierto. Bochs puede ejecutarse en distintos sistemas operativos, incluyendo Linux, Windows o incluso la XBox. Puede además simular varios sistemas operativos como DOS, Windows o Linux.

· Microsoft Virtual PC: suite de virtualización de Microsot para Windows y para MacOS. VirtualPC emula un PC estándar y todo el hardware asociado.

· Parallels Workstation: software de virtualización de la empresa Parallels Incorporation para procesadores Intel x86.

· QEMU: aplicación de software libre que implementa un emulador de procesador y que incluye un acelerador que permite incrementar la velocidad de las máquinas virtuales.

· Virtual Iron: otra aplicación de virtualización que ha sido de las primeras en aprovechar las capacidades específicas de virtualización de los nuevos procesadores Intel y AMD.

· VMWare: un completo conjunto de aplicaciones de virtualización, con herramientas de pago orientadas a la empresa y otras gratuitas más orientadas al uso personal. Hasta hace poco tiempo solo se ofrecía de manera gratuita la aplicación VMWare Player, que permitía ejecutar distintas máquinas virtuales ya creadas y que se podían descargar desde Internet. Desde fechas recientes se ofrece también de manera gratuita VMWare Server, que permite no sólo ejecutar máquinas ya creadas sino crear las máquinas desde el comienzo.

· Xen: Una herramienta muy usada en la comunidad Linux puesto que hasta hace poco tiempo sólo podía usar Linux/Unix como sistema anfitrión. Con la versión Xen 3.0 ya se puede instalar en Windows.

· VirtualBox: una herramienta para Windows y para Linux (la versión para MAC actualmente está en desarrollo en fase pre-alfa) liberada bajo licencia GPL y con un rendimiento similar al de otras aplicaciones como VirtualPC o VMWare.



ATRAS